package com.xr.pojo;



import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 将配置文件中的每一个属性的值，映射到这个组件中来
 * @Component表示是交给spring管理的组件，只有交给spring管理了，才能使用自动绑定的功能
 * @ConfigurationProperties(prefix = "person")告诉SpringBoot将本类中的所有属性和
配置文件中相关的配置进行绑定
 * prrfix="person" 对配置文件下的哪个属性进行映射
 */
@Component
@ConfigurationProperties(prefix = "person3")
@PropertySource(value = {"classpath:person3.properties"},encoding = "utf-8")
@Data
public class Person3 {



    @Value("${person2.name}") //支持${key}
    private String name;
    @Value("1999/1/1") // 支持字面量
    private Date birthday;
    @Value("#{10*2}") // 支持SpringEL
    private Integer age;
    @Value("#{${person2.maps}}")
    private Map<String,Object> maps;
    @Value("#{'${person2.lists}'.split(',')}")//默认以“,”进行分割，转换成对应的数组或列表。
    private List<Object> lists;

//    @Value("${person2.lists[1]}")
//    private String list1;
}

